home *** CD-ROM | disk | FTP | other *** search
- section l,code_c
- ; coded by atlaw
-
- screen: equ $60000
- radsize:equ 40
- scsize: equ radsize*263
- IRQBASE:equ $6c
-
- DEST= screen+4020
-
- INTENA: equ $09a
- INTENAR:equ $01c
- INTREQR:equ $01e
- INTREQ: equ $09c
- DMACONR:equ $002
- DMACON: equ $096
- COP1LCH:equ $080
- COP2LCH:equ $084
- COPJMP1:equ $088
- COPJMP2:equ $08a
- COPCON: equ $02e
- JOY0DAT:equ $00a
- JOY1DAT:equ $00c
- SPR0DATA:equ $144
- BLTAPTH:equ $050
- BLTBPTH:equ $04c
- BLTCPTH:equ $048
- BLTDPTH:equ $054
- BLTAMOD:equ $064
- BLTBMOD:equ $062
- BLTCMOD:equ $060
- BLTDMOD:equ $066
- BLTCON0:equ $040
- BLTCON1:equ $042
- BLTAFWM:equ $044
- BLTALWM:equ $046
- BLTSIZE:equ $058
- BLTADAT:equ $074
- BLTBDAT:equ $072
- BLTCDAT:equ $070
-
- s:
- multioff:
- move.l $4,a6
- jsr -132(a6)
- memclear:
- move.l #$060000,a0
- move.l #$070000,a1
- moveq #$00,d0
- mclear:
- move.b d0,(a0)+
- cmp.l a0,a1
- bne mclear
-
- move.l #$dff000,a6
- systemout:
- move.l #COPPER,COP1LCH(a6)
- clr.w COPJMP1(a6)
- lea OLDONES(pc),a0
- move.l IRQBASE,(a0)+
- move.w INTENAR(a6),(a0)+
- move.w DMACONR(a6),(a0)+
- lea INTERUPT(pc),a0
- move.l a0,IRQBASE
- move.w #$7fff,DMACON(a6)
- move.w #$83c0,DMACON(a6)
- move.w #$7fff,INTENA(a6)
- move.w #$c020,INTENA(a6)
- clr.l SPR0DATA(a6)
- or.w #$0002,COPCON(a6)
- clr.w d3
- move.w #64,d4
-
- CHECK:
- btst #$6,$bfe001
- bne CHECK
- RETURN:
- lea OLDONES(pc),a0
- move.l (a0)+,IRQBASE
- move.w (a0)+,d0
- bset #15,d0
- move.w #$7fff,INTENA(a6)
- move.w d0,INTENA(a6)
- move.w (a0)+,d0
- bset #15,d0
- move.w #$7fff,DMACON(a6)
- move.w d0,DMACON(a6)
- move.l $4,a6
- lea GFXNAME(pc),a1
- clr.w d0
- jsr -552(a6)
- move.l d0,a0
- move.l 38(a0),$dff000+COP1LCH
- clr.w $dff000+COPJMP1
- jsr -138(a6)
- clr.l d0
- rts
-
- OLDONES:
- OLDIRQ: dc.l 0
- OLDINT: dc.w 0
- OLDDMA: dc.w 0
- GFXNAME:dc.b "graphics.library",00
-
- even
- COPPER:
- dc.w $008e,$2c81,$0090,$7fc1
- dc.w $0092,$0038,$0094,$00d0
- dc.w $0102,$0000
- dc.w $0104,$0000
- dc.w $0108,$0000
- dc.w $010a,$0000
- dc.w $0100,$1200
- col: dc.w $0180,$0000,$0182,$0ccc,$0184,$0ee0,$0186,$0e80
- dc.w $0188,$0e00,$018a,$0668,$018c,$088a,$018e,$0aac
- dc.w $0190,$0cce,$0192,$0464,$0194,$0242,$0196,$0c6e
- dc.w $0198,$0eee,$019a,$0eee,$019c,$0eee,$019e,$0eee
- bpl1: dc.w $00e0,$0006,$00e2,$0000
- dc.w $00e4,$0006,$00e6,$0000
- dc.w $00e8,$0006,$00ea,$0000
- dc.w $00ec,$0006,$00ee,$0000
- dc.w $0001,$7ffe
- copclr: dc.w BLTDPTH,$0006,BLTDPTH+2,$0000
- dc.w BLTDMOD,$0000
- dc.w BLTCON0,$01f0
- dc.w BLTCON1,$0000
- dc.w BLTADAT,$0000
- dc.w BLTSIZE,$4014
- dc.w $ffff,$fffe
-
- INTERUPT:
- move.w INTREQR(a6),d0
- btst #05,d0
- bne MAINvb
- ;-------interupt kollar
- out:
- move.w d0,INTREQ(a6)
- rte
- MAINvb:
- move.w d0,INTREQ(a6)
- mousecheck:
- btst #$6,$bfe001
- beq out
- ;-------frame ruitner
- bsr A
- rte
-
- A:
- lea sinelist(pc),a0
- moveq #15,d7
- move.l #$80008000,d1
- aloop1:
- move.l #screen+1200,a1
- clr.w d0
- move.b (a0,d3.w),d0
- mulu #50,d0
- lsr.l #8,d0
- mulu #radsize,d0
- add.l d0,a1
- clr.w d0
- move.b (a0,d4.w),d0
- mulu #304,d0
- lsr.l #8,d0
- ror.l #4,d0
- add.w d0,d0
- add.w d0,a1
- swap d0
- or.w #$0dfc,d0
- bsr bwait
- move.l #DATA,BLTAPTH(a6)
- move.l a1,BLTBPTH(a6)
- move.l a1,BLTDPTH(a6)
- move.w #$0000,BLTAMOD(a6)
- move.w #radsize*9-4,BLTBMOD(a6)
- move.w #radsize*9-4,BLTDMOD(a6)
- move.w d0,BLTCON0(a6)
- move.w #$0000,BLTCON1(a6)
- move.l d1,BLTAFWM(a6)
- move.w #$0402,BLTSIZE(a6)
- addq.b #3,d3
- addq.b #3,d4
- ror.l #1,d1
- dbra d7,aloop1
- sub.b #16*3+3,d3
- sub.b #16*3+2,d4
- rts
-
- bwait: btst #$6,$002(a6)
- bne bwait
- rts
-
-
- DATA:
- dc.w %0111111111111110,0
- dc.w %1111111111111111,0
- dc.w %1111111111111111,0
- dc.w %1111110000111111,0
- dc.w %1111110000111111,0
- dc.w %1111110000111111,0
- dc.w %1111110000111111,0
- dc.w %1111110000111111,0
- dc.w %1111110000111111,0
- dc.w %1111110000111111,0
- dc.w %1111111111111111,0
- dc.w %1111111111111111,0
- dc.w %1111110000111111,0
- dc.w %1111110000111111,0
- dc.w %1111110000111111,0
- dc.w %1111110000111111,0
-
- sinelist:;256 positioner (7 bitar),sin x*127:x=x+1.40625 (?)
- dc.b 127,130,133,136,139,143,146,149,152,155,158,161,164,167,170,173,176
- dc.b 178,181,184,187,190,192,195,198,200,203,205,208,210,212,215,217,219
- dc.b 221,223,225,227,229,231,233,234,236,238,239,240,242,243,244,245,247
- dc.b 248,249,249,250,251,252,252,253,253,253,254,254,254,254,254,254,254
- dc.b 253,253,253,252,252,251,250,249,249,248,247,245,244,243,242,240,239
- dc.b 238,236,234,233,231,229,227,225,223,221,219,217,215,212,210,208,205
- dc.b 203,200,198,195,192,190,187,184,181,178,176,173,170,167,164,161,158
- dc.b 155,152,149,146,143,139,136,133,130,127,124,121,118,115,111,108,105
- dc.b 102,099,096,093,090,087,084,081,078,076,073,070,067,064,062,059,056
- dc.b 054,051,049,046,044,042,039,037,035,033,031,029,027,025,023,021,020
- dc.b 018,016,015,014,012,011,010,009,007,006,005,005,004,003,002,002,001
- dc.b 001,001,000,000,000,000,000,000,000,001,001,001,002,002,003,004,005
- dc.b 005,006,007,009,010,011,012,014,015,016,018,020,021,023,025,027,029
- dc.b 031,033,035,037,039,042,044,046,049,051,054,056,059,062,064,067,070
- dc.b 073,076,078,081,084,087,090,093,096,099,102,105,108,111,115,118,121
- dc.b 124,127
-
-
-